iT邦幫忙

DAY 25
0

給學弟的ASP.NET網頁學習經驗系列 第 25

ASP.NET學習經驗#25----模糊查詢、搜尋功能該怎麼做??

  • 分享至 

  • xImage
  •  

今天要做個簡單搜尋資料內容的功能,但是要怎麼實作到網頁上呢?

在資料庫上這樣的功能叫做

模糊查詢

SELECT 欄位 FROM [TABLE] 
WHERE [被比對的欄位] LIKE '比對的條件(規則)'

介紹較常用的兩種比對規則:

1.%

用來代表0個到多個任意字元,任意長度都會符合比對的條件

查詢單字為例:'a%'

就會產生所有字首有a的單字:a an able apple.......等等

'%a%'

任何內含有a字母的單字:a apple banana cake...等等

2._

用來代表單個任意字元,必須完全符合的字元長度

Example:

查詢英文單字'a_'

就會產生a後面接1個任意字母的單字:an as....等等

回到正題

protected void txtSearch_TextChanged(object sender, EventArgs e)
{
    //SqlDataSource1.SelectCommand = "SELECT [Title], [Content], [Date], [Id] FROM [Table]";
    if (!string.IsNullOrWhiteSpace(txtSearch.Text))
    {
        SqlDataSource1.SelectCommand += "WHERE [Content] LIKE '%'+@search+'%'";
        SqlDataSource1.SelectParameters.Add("search", txtSearch.Text);

    }
}

如果有值就加上一段模糊查詢條件

這樣看起來應該就沒問題!!!

雖然第一次查詢會沒有問題,但是反覆時....登登!

在新增參數前都要有好習慣,記得先清空參數就不會有這問題

簡單完成!!!

===========================================================

小記:

字串內容過長時要怎麼截斷了?(非資料庫方法)

找不到方法就寫個簡單的方法...

protected string CheckStringLength(string str ,int length )
{
    int limit = length;//長度限制

    if (str.Length > limit)
    {
        return str.Substring(0, limit) + "...";
    }
    else
    {
        return str;
    }
}

上一篇
ASP.NET學習經驗#24----TemplateField處理Null、bootstrap的套用
下一篇
ASP.NET學習經驗#26----var到底代表??好想直接擴充想要的功能??
系列文
給學弟的ASP.NET網頁學習經驗30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言